package models;

import java.util.ArrayList;

/**
 * Generico post del forum.
 * Le sue informazioni prevedono il suo ID personale all'interno del forum, l'utente autore del post,
 * il titolo, il testo di contenuto e l'elenco delle sue risposte.
 *  
 */
public class Post {

	private Integer id;
	private User author;
	private String title;
	private String content;
	private ArrayList<Post> responses=new ArrayList<Post>();
	private String style;

	/**
	 * Inizializza una nuova istanza di Post dati ID e autore
	 * 
	 * @param id
	 *        codice identificativo (ID) del post
	 * @param author
	 * 		  autore del post
	 */
	public Post(User author) {
		super();
		this.author = author;
		this.style = "main.css";
	}

	/**
	 * Restituisce il titolo del post
	 * 
	 * @return il titolo del post
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * Imposta il titolo del post
	 * 
	 * @param title
	 *            titolo del post
	 */
	public synchronized void setTitle(String title) {
		this.title = title;
	}

	/**
	 * Restituisce il contenuto(testo) del post
	 * 
	 * @return il contenuto del post
	 */
	public String getContent() {
		return content;
	}

	/**
	 * Imposta il contenuto(testo) del post
	 * 
	 * @param content
	 *            il contenuto del post
	 */
	public synchronized void setContent(String content) {
		this.content = content;
	}

	/**
	 * Restituisce l'ID del post
	 * 
	 * @return 
	 * 		l'ID del post
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * Imposta l'ID del post
	 * 
	 * @param id
	 * 		l'ID del post
	 */
	
	public void setId(Integer id) {
		this.id = id;
	}
	
	/**
	 * Restituisce l'autore del post
	 * 
	 * @return 
	 * 		l'autore del post
	 */
	public User getAuthor() {
		return author;
	}
	/**
	 * Aggiunge una risposta al post
	 * 
	 * @param response
	 * 			il post di risposta
	 *			
	 */
	public void addResponse(Post response){
		responses.add(response);
	}
	
	/**
	 * Restituisce tutte le risposte allegate al post
	 * 
	 * @return 
	 * 		L'arraylist delle risposte
	 */
	public ArrayList<Post> getResponses() {
		return responses;
	}

	public String getStyle() {
		return style;
	}

	public void setStyle(String style) {
		this.style = style;
	}
	
	
	
	

}
